home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #062 (1990-04)(Amiga User Group Deutschland e.V.).zip / Franz PD Disk #062 (1990-04)(Amiga User Group Deutschland e.V.).adf / Go_Down! / Go_Down.asm < prev    next >
Assembly Source File  |  1989-07-02  |  7KB  |  184 lines

  1. * GO_DOWN!
  2.  
  3. _SysBase                equ      4
  4. _LVOOpenLibrary         equ      -552
  5. _LVOCloseLibrary        equ      -414
  6. _LVOGetMsg              equ      -372
  7. _LVOOpenWindow          equ      -204
  8. _LVOCloseWindow         equ      -72
  9. _LVOMoveScreen          equ      -162
  10. _LVOSetWindowTitles     equ      -276
  11. _LVODelay               equ      -198
  12. CLOSEWINDOW             equ      $200
  13. WINDOWCLOSE             equ      8
  14. WBENCHSCREEN            equ      1
  15.  
  16. dauer                   equ      800
  17. verzoegerung            equ      0
  18.  
  19. _main:
  20.    jsr      OeffneIntuition               ;Intuition-Library öffnen
  21.    tst.l    IntuitionBase                 ;Fehler?
  22.    beq      ende3                         ;Ja, dann aufhören
  23.    jsr      OeffneDOS                     ;DOS-Library öffnen
  24.    tst.l    DOSBase                       ;Fehler?
  25.    beq      ende2                         ;Ja, dann aufhören
  26.    jsr      OeffneWindow                  ;Fenster öffnen
  27.    tst.l    WindowHandle                  ;Fehler?
  28.    beq      ende1                         ;Ja, dann aufhören
  29.    move.l   #dauer,d1
  30.    jsr      Warte                         ;warten
  31.    jsr      ScreenRunter                  ;Screen herunterziehen
  32.    jsr      SchliesseWindow               ;Fenster schließen
  33. ende1:
  34.    jsr      SchliesseDOS                  ;DOS-Library schließen
  35. ende2:
  36.    jsr      SchliesseIntuition            ;Intuition-Library schließen
  37. ende3:
  38.    clr.l    d0                            ;kein Fehler
  39.    rts                                    ;zurück
  40.  
  41. OeffneIntuition:
  42.    lea      IntuitionName,a1              ;Zeiger auf Librarynamen
  43.    jsr      OeffneBibliothek              ;Öffnen...
  44.    move.l   d0,IntuitionBase              ;Basisadresse merken
  45.    rts                                    ;und zurück ins Hauptprogramm
  46.  
  47. OeffneDOS:
  48.    lea      DOSName,a1                    ;Zeiger auf Librarynamen
  49.    jsr      OeffneBibliothek              ;Öffnen...
  50.    move.l   d0,DOSBase                    ;Basisadresse merken
  51.    rts                                    ;und zurück ins Hauptprogramm
  52.  
  53. OeffneBibliothek:
  54.    move.l   _SysBase,a6                   ;EXEC-Basisadresse nach a6 bringen
  55.    moveq    #0,d0                         ;egal, welche Version
  56.    jsr      _LVOOpenLibrary(a6)           ;öffnen
  57.    rts                                    ;zurück
  58.  
  59. SchliesseIntuition:
  60.    move.l   IntuitionBase,a1              ;Intuition-Basisadresse nach a1
  61.    jsr      SchliesseBibliothek           ;schließen
  62.    rts                                    ;und zurück
  63.  
  64. SchliesseDOS:
  65.    move.l   DOSBase,a1                    ;DOS-Basisadresse nach a1
  66.    jsr      SchliesseBibliothek           ;schließen
  67.    rts                                    ;und zurück ins Hauptprogramm
  68.  
  69. SchliesseBibliothek:
  70.    move.l   _SysBase,a6                   ;EXEC-Basisadresse nach a6 bringen
  71.    jsr      _LVOCloseLibrary(a6)          ;Bibliothek schließen
  72.    rts                                    ;zurück
  73.  
  74. OeffneWindow:
  75.    move.l   IntuitionBase,a6              ;Intuition-Basis nach a6
  76.    lea      mein_fenster,a0               ;Zeiger auf Fensterdaten
  77.    jsr      _LVOOpenWindow(a6)            ;Fenster öffnen
  78.    move.l   d0,WindowHandle               ;Handle speichern
  79.    move.l   d0,a0                         ;Handle nach a0 bringen
  80.    move.l   46(a0),ScreenHandle           ;ScreenHandle speichern
  81.    move.l   86(a0),UserPort               ;UserPort speichern
  82.    move.l   ScreenHandle,a0               ;ScreenHandle nach a0 bringen
  83.    move.w   14(a0),ScreenHoehe            ;Höhe des Screens speichern
  84.    sub.w    #10,ScreenHoehe               ;-10 Punkte
  85.    lea      ScreenTitel,a2                ;Name des Screens
  86.    lea      w_name,a1                     ;Windowtitel
  87.    move.l   WindowHandle,a0               ;Window-Handle nach a0 bringen
  88.    jsr      _LVOSetWindowTitles(a6)       ;Titel neu setzen
  89.    rts                                    ;und zurück
  90.  
  91. SchliesseWindow:
  92.    move.l   IntuitionBase,a6              ;Intuition-Basis nach a6
  93.    move.l   WindowHandle,a0               ;Handle nach a0
  94.    jsr      _LVOCloseWindow(a6)           ;Fenster schließen
  95.    rts                                    ;und zurück
  96.  
  97. ScreenRunter:
  98.    jsr      Message                       ;Message holen
  99.    tst.l    d0                            ;war eine Message da?
  100.    bne      zurueck                       ;wenn ja, dann zurück
  101.    move.l   ScreenHandle,a0               ;ScreenHandle nach a0
  102.    move.w   10(a0),a0                     ;Obere Ecke des Screens zum Viewp.
  103.    cmp.w    ScreenHoehe,a0                ;noch weiter verschieben?
  104.    bcc      nichtbewegen                  ;Nein!
  105.    jsr      Down                          ;Screen verschieben
  106.    move.l   #verzoegerung,d1
  107.    jsr      Warte                         ;warten
  108. nichtbewegen:
  109.    bra      ScreenRunter
  110. zurueck:
  111.    rts                                    ;Zurück ins Hauptprogramm
  112.  
  113. Warte:
  114.    move.l   DOSBase,a6                    ;DOS-Basisadresse nach a6
  115.    jsr      _LVODelay(a6)                 ;warten ......
  116.    rts                                    ;zurück
  117.  
  118. Down:
  119.    move.l   IntuitionBase,a6              ;Intuition-Basis nach a6
  120.    move.l   ScreenHandle,a0               ;ScreenHandle nach a0
  121.    move.l   #1,d1                         ;ein Punkt nach unten
  122.    jsr      _LVOMoveScreen(a6)            ;verschieben
  123.    rts                                    ;zurück
  124.  
  125. Message:
  126.    move.l   _SysBase,a6                   ;EXEC-Basisadresse
  127.    move.l   UserPort,a0                   ;UserPort nach a0
  128.    jsr      _LVOGetMsg(a6)                ;Message holen
  129.    rts                                    ;zurück
  130.  
  131. mein_fenster:
  132.    even
  133.    dc.w     470,0                         ;Koordinaten für links oben
  134.    dc.w     100,10                        ;Breite,Höhe
  135.    dc.b     3,1                           ;Schrift und Hintergrundfarben
  136.    dc.l     CLOSEWINDOW                   ;IDCMP-Nachrichten
  137.    dc.l     WINDOWCLOSE                   ;Schließgadget
  138.    dc.l     0                             ;keine eigenen Gadgets
  139.    dc.l     0                             ;kein eigenes CheckMark
  140.    dc.l     w_name                        ;Name des Windows
  141.    dc.l     0                             ;kein eigener Screen
  142.    dc.l     0                             ;keine eigene Bitmap
  143.    dc.w     100,10                        ;Mindestausmaße
  144.    dc.w     100,10                        ;Maximalausmaße
  145.    dc.w     WBENCHSCREEN                  ;Fenster liegt im Workbenchscreen
  146.  
  147.  
  148. w_name:
  149.                even
  150.                dc.b     'GO_DOWN!',0
  151. dummy:
  152.                even
  153.                ds.l     1
  154. WindowHandle:
  155.                even
  156.                ds.l     1
  157. ScreenHandle:
  158.                even
  159.                ds.l     1
  160. UserPort:
  161.                even
  162.                ds.l     1
  163. IntuitionBase:
  164.                even
  165.                ds.l     1
  166. DOSBase:
  167.                even
  168.                ds.l     1
  169. IntuitionName:
  170.                even
  171.                dc.b     'intuition.library',0
  172. DOSName:
  173.                even
  174.                dc.b     'dos.library',0
  175. ScreenTitel:
  176.                even
  177.                dc.b     'GO_DOWN - von Christoph Hust -- PUBLIC DOMAIN',0
  178. ScreenHoehe:
  179.                even
  180.                ds.w     1
  181.  
  182.                end
  183.  
  184.